from bs4 import BeautifulSoup
import urllib.request
import ssl

# 上下文不验证证书
ssl._create_default_https_context = ssl._create_unverified_context

# 基础访问地址
base_url = 'https://www.dicos.com.cn'


def create_request():
    """
    创建 request 对象
    :return: request 类
    """
    product_url = base_url+'/product/index.html'
    print(product_url)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/123.0.0.0'
                      'Safari/537.36',
        'Cookie': 'PHPSESSID=52lhrta3f3t71bq4s2f67pe15g'
    }
    return urllib.request.Request(product_url, headers=headers)


def get_content(request1):
    """
    获取德克士的网站数据
    :param request1: 自定义请求对象
    :return: 德克士网站数据
    """
    response = urllib.request.urlopen(request1)
    return response.read().decode('utf-8')


def parse_html(content1):
    """
    解析德克士的网页并下载对应的商品信息
    :param content1: 德克士商品网页
    """
    obj = BeautifulSoup(content1, 'lxml')
    img_list = obj.select('.proul > li > a > div > img')
    title_list = obj.select('.proul > li > a > p')
    for i in range(len(img_list)):
        print(img_list[i].get("src"), title_list[i].get_text())
        urllib.request.urlretrieve(base_url+img_list[i].get("src"), './images/' + title_list[i].get_text()+'.png')


if __name__ == '__main__':
    """
    爬取德克士的商品数据
    """
    # 创建请求对象
    request = create_request()
    # 获得网站数据
    content = get_content(request)
    # 解析网页数据并下载图片
    parse_html(content)
